package com.huawo.opensdk
import android.app.Activity
import android.content.Context
import com.huawo.opensdk.bean.WatchDialLayoutBean
import com.huawo.opensdk.listener.OnConnectionStateListener
import com.huawo.opensdk.listener.OnFirmwareUpgradeListener
import com.huawo.opensdk.listener.OnWatchFaceTransListener
import java.io.File

interface IHealthDevice {


    fun setOnConnectionStateListener(listener: OnConnectionStateListener?)

    fun connect(mac: String)

    //  断开ble连接
    fun disconnect()

    //  移除bt绑定
    fun removeBond() {}

    //  同步时间
    fun syncTime()

    //  设置语言
    fun syncLanguage()

    //  查找设备
    fun findDevice()

    // 传输表盘文件
    //支持传输bin文件表盘，需要回调传输状态、传输进度

    fun sendDialBinFile(file: File, listener: OnWatchFaceTransListener)

    // 中断传输表盘
    fun sendAbortDialBinFile()

    // 设置自定义表盘
    /**
     * @param watchDialLayoutBean {@link WatchDialLayoutBean 2.6.1.1} 表盘的布局结构
     * @param imagePath 表盘背景图，可以是静态png或动态gif图
     * @param onTransListener 传输表盘过程回调
     */
    fun sendCustomWatchDialFile(
        watchDialLayoutBean: WatchDialLayoutBean,
        imagePath: String,
        onTransListener: OnWatchFaceTransListener
    )

    // 中断自定义表盘 在执行2.6.1.10自定义表盘传输过程，用户可以通过该接口中断传输过程
    fun sendAbortTransCustomDial()
    // 设备升级
    // 校验设备固件版本信息，返回更新状态WatchUpdateStatus、旧版本信息、新版本信息三元组
    fun queryFirmwareVersion(): Triple<Int, String, String>

    // 设置固件更新监听
    fun setOnFirmwareUpgradeListener(listener: OnFirmwareUpgradeListener?)

    // 更新固件
    fun sendStartFirmwareUpgrade(file1 : File,file2 : File)

    // 中断固件更新
    fun sendAbortFirmwareUpgrade()

    //  视频处理gif
    fun videoToGif(context: Activity)

    //  OTA 图片
    fun sendStartPicture(context: Activity,fileList : List<String>,indexList : List<Int>)

    //  OTA 音乐
    fun sendStartMusic(context: Activity,fileList : List<String>)

}